<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 前端路由：url的不同，显示不同的页面或者组件 -->
    <div id="app">
      <h2>路由原理</h2>
      <!-- 1. 需要有几个可以改变url的a标签 -->
      <p>
        <a href="#home">首页</a> | <a href="#cinema">影院页</a> |
        <a href="#mine">我的</a>
      </p>

      <!-- 2. 需要有一个可以存放切换内容的容器 -->
      <div class="box"></div>
    </div>

    <script>
      // 3. 需要一个路由表, 就是一个数组
      // 是由path，tempalte组成的对象
      const routes = [
        {
          path: "home",
          template: "<div>这是首页</div>",
        },
        {
          path: "cinema",
          template: "<div>这是影院页</div>",
        },
        {
          path: "mine",
          template: "<div>这是我的页</div>",
        },
      ];

      // 4. 监听url的改变
      // hashchange
      window.addEventListener("hashchange", () => {
        const hash = location.hash.slice(1);
        routes.forEach((item) => {
          if (item.path === hash) {
            document.querySelector(".box").innerHTML = item.template;
          }
        });
      });
    </script>
  </body>
</html>
